home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group93b.txt
/
000117_icon-group-sender _Thu May 27 06:31:18 1993.msg
< prev
next >
Wrap
Internet Message Format
|
1993-06-16
|
5KB
Received: from owl.CS.Arizona.EDU by cheltenham.CS.Arizona.EDU; Thu, 27 May 1993 07:32:45 MST
Received: by owl.cs.arizona.edu; Thu, 27 May 1993 07:32:44 MST
Date: 27 May 1993 06:31:18 -0600 (CST)
From: Chris Tenaglia - 257-8765 <TENAGLIA@mis.mcw.edu>
Subject: Comparative Languages (MUMPS?)
To: icon-group@cs.arizona.edu
Message-Id: <01GYNRS810XE8WW871@mis.mcw.edu>
Organization: Medical College of Wisconsin (Milwaukee, WI)
X-Vms-To: IN%"icon-group@cs.arizona.edu"
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT
Status: R
Errors-To: icon-group-errors@cs.arizona.edu
Icon seems to incorporate some of the best features of the best computer
languages. It has probably exhausted it's grant money for further renovation
but I've been putzing with another kind of string language. This is
something Hospitals use extensively, namely MUMPS.
I sat with a MUMPS guru for about an hour back in December and heard the
party line, and asked him certain language design questions. MUMPS also
makes the Icon claim of very quick development. It seemed to have all the
functionality of Icon but in a very different form.
MUMPS like Icon is designed around a virtual machine and has an interpreter,
compiler, X-windows, easy types, automatic memory management and garbage
collection.
But the part that I think is really cool is an architecture independent file
system. My understanding is probably a little warped, but here's my
understanding of MUMPS data. It comes in 3 forms. LOCAL, GLOBAL, and
STRUCTURE. LOCAL are your local variables, and procedures that disappear
after the running program finishes. STRUCTURES are builtin data structures
offered by the operating system. GLOBALS are handled like variables, but
they're actually files, well sort of. They are files in that they don't go
away after the program is done, or you log out. You don't have to open or
close them, they're just there. All you have to do is reference them. The
cool part is that they can be complex data like icon lists, and tables and
procedures (programs). There is a programmer and user environment. The
programmer environment can step through programs, use breakpoints, or run
single expressions interactively. The user environment is tight with no
programming access.
MUMPS provides facilities to read and write to file systems and devices
outside it's environment. While it can be used this way, I get the feeling
these are designed for you to import your data into the environment, and
export it to non-MUMPS environments.
Here is a sample of what Icon might be like using a MUMPS global paradigm.
procedure main()
In := open("external.dat") # to import from outside
$Reference := table(0) # $ maps Reference to a file
available to all icon
programs by name $Reference.
while Line := read(In) do # in fact, the table is not
{ # initialized here, but just
Name := Parse(Line,' ')[1] # declared for access. Old
Adrs := Parse(Line,' ')[2] # contents still remembered
$Reference[Name] := Adrs # but the init value might
be different in different
procedures.
}
close(In)
end
Later, this is run and $Reference is populated with data. Since it was
loaded as a filed variable, a later program can reference it already loaded
and in the table associative array mode.
procedure main()
$Reference := table(0) # maps in the data
every Check := !Occurence do Crunch($Reference[Check])
end
A list or set like structure could be initialized in this method too. Any
comments concerning having some variables or types directly map to file
system structures that are non-volatile from session to session? I think it
helps because you don't have to clutter your code up with all kinds if open
close and testing statements. Open and close would be used for exporting &
importing data, manipulating pipes and x-windows.
Chris Tenaglia (System Manager) | "The past explained,
Medical College of Wisconsin | the future fortold,
8701 W. Watertown Plank Rd. | the present largely appologized for."
Milwaukee, WI 53226 | Organon to The Doctor
(414)257-8765 |
tenaglia@mis.mcw.edu